Версия 1.7.0 (выбор вида окна QuickTime)
--------------------------------------------
Новое меню «Плеер: вид» с двумя вариантами:
  Целое окно                   — видно всё окно QuickTime целиком
                                  (поведение версии 1.4.0).
  Верх окна (только ползунок)  — вниз за экран уезжает половина окна,
                                  видна только верхняя половина: заголовок
                                  и бегунок с таймингом (поведение версии
                                  1.5.0 и текущее значение по умолчанию).

Выбор запоминается между запусками и применяется сразу, без
перезапуска — как и смена стороны текста. В отличие от убранного в 1.5.0
переключателя «Автоматически размещать QuickTime», это не вкл/выкл, а
выбор одного из двух вариантов (как уже работает выбор стороны текста в
меню «Текст») — само размещение всегда включено, ломать тут нечего.

Версия 1.6.0 (горячие клавиши громкости QuickTime)
------------------------------------------------------
В меню «Клавиши» добавлены два новых действия:
  QuickTime тише на 2 дБ    — по умолчанию Cmd+↓
  QuickTime громче на 2 дБ  — по умолчанию Cmd+↑

Громкость документа в QuickTime Player — линейная величина (1.0 = 100%,
у самого QuickTime можно уходить и выше — вплоть до 3.0 = 300%
усиления), а не децибелы. Шаг в 2 дБ каждый раз переводится в множитель
по стандартной формуле амплитуды — 10^(дБ/20), то есть примерно ×1.259
на «громче» и ×0.794 на «тише» — и применяется к ТЕКУЩЕЙ громкости, а не
прибавляется как фиксированное число. Это значит, что шаг всегда
пропорционален текущей громкости, как и положено на логарифмической
шкале восприятия: одинаковое ощущение «на сколько стало громче» что на
тихом, что на громком уровне.

Несколько быстрых нажатий подряд складываются в одну суммарную дБ-дельту
и применяются одним обращением к QuickTime (та же схема, что уже
используется для перемотки — несколько нажатий стрелок объединяются в
одну команду). Верхний предел — 2.0 (примерно +6 дБ над номинальными
100%): достаточный запас на тихую запись, но без риска резкого,
неожиданно громкого скачка на сцене. Нижний предел — 0 (полная тишина).

Громкость меняется у документа именно текущей песни (тем же способом
поиска документа, что уже используется для перемотки и паузы) — команды
уходят напрямую в QuickTime Player, без System Events, поэтому не
затронуты историей с правами доступа из версии 1.4.0.

Версия 1.5.0 (снова видна только верхняя часть окна QuickTime; меню «Плеер» убрано)
--------------------------------------------------------------------------------------
После починки в 1.4.0 размещение окна QuickTime наконец заработало.
Дальше — два упрощения по итогам реального использования.

1. Окно QuickTime теперь вертикально уезжает вниз ровно на половину своей
высоты — видна верхняя половина (заголовок и бегунок с таймингом), а
нижняя (кнопки перемотки и громкость) уходит за нижний край экрана. Сама
зона (своя половина экрана, противоположная тексту, во всю ширину) не
изменилась, изменилась только вертикальная позиция внутри неё.

2. Меню «Плеер» убрано целиком — вместе с переключателем «Автоматически
размещать QuickTime» (переключение которого приводило к аварийному
завершению — сама ошибка не расследовалась, поскольку от переключателя
решено было отказаться) и командой «Разместить окно QuickTime сейчас».
Автоматическое размещение — единственный режим работы, всегда включён,
никаких настроек для него больше нет.

Версия 1.4.0 (устранена настоящая причина: разрешение получал не тот процесс)
--------------------------------------------------------------------------------
Версия 1.3.1 (диагностика вместо общей фразы об ошибке)
----------------------------------------------------------
Версия 1.3.0 (QuickTime: отдельная зона экрана вместо полосы)
---------------------------------------------------------------
Версия 1.2.2 (полоса QuickTime: надёжность и минимальная высота)
------------------------------------------------------------------
Версия 1.2.1 (полоса QuickTime внизу экрана)
-------------------------------------------
Окно QuickTime Player больше не открывается там, где его поставит macOS.
Теперь оно получает левый край и ширину окна текста, а по вертикали
уезжает за нижний край экрана: на виду остаётся только верхняя полоса —
заголовок, бегунок и тайминг, по которому видно, сколько осталось до
конца песни. Окно текста при этом не двигается и не уменьшается, а
активным окном остаётся выбранная DAW.

Порядок окон трогается только при запуске песни (плюс короткая серия
подстраховочных попыток сразу после — подробности в записи 1.2.2 выше).
Дальше, пока играет песня, PressNext Live к окнам не прикасается:
никаких периодических действий по таймеру. Фокус, клавиши и MIDI
остаются у DAW до конца песни.

Если после этого macOS всё же вывела вперёд QuickTime, PressNext Live
возвращает фокус тому приложению, которое было активным (при включённой
активации DAW — снова активирует DAW). Если фокус ушёл куда-то ещё,
значит его переключил сам пользователь, и приложение не вмешивается.

Смена стороны в меню «Текст» («Слева» / «Справа» / «Второй монитор»)
сразу переносит и полосу: она всегда повторяет сторону и ширину текста.

Меню «Плеер»
------------
  Полоса QuickTime внизу        — включает и выключает всё описанное выше.
                                  При выключении окно плеера возвращается
                                  целиком на экран, к нижнему краю, чтобы
                                  не осталось наполовину за краем.
  Видимая высота полосы         — 44 / 56 / 66 / 78 / 92 / 110 px.
                                  По умолчанию 66 px: это заголовок окна
                                  плюс строка с бегунком и таймингом.
                                  Меньше — виден только бегунок, больше —
                                  показываются и кнопки перемотки.
  Разместить окно QuickTime сейчас — применить размещение вручную, если
                                  окно куда-то сдвинули. Единственный
                                  способ вернуть полосу на место посреди
                                  песни, и делается он только вручную.

Настройки запоминаются между запусками.

Для размещения окна QuickTime нужен доступ к «Универсальному доступу» —
тот же, что уже требуется для глобальных клавиш. После установки новой
версии этого пакета (новый исполняемый файл — новая подпись) macOS
иногда сбрасывает это разрешение молча, без предупреждения: PressNext
Live в списке «Универсальный доступ» остаётся включённым на вид, но
реально команды не проходят. Если после установки этой версии
расположение окон не меняется вовсе (ни текст, ни QuickTime), самое
надёжное — открыть «Системные настройки → Конфиденциальность и
безопасность → Универсальный доступ», убрать PressNext Live из списка
через «−», затем запустить PressNext Live заново и разрешить доступ,
когда система спросит.

Версия 1.1.3 (поля картинки и распознавание припева)
---------------------------------------------------
Пакетное форматирование:
- Поля готовой картинки уменьшены до 8 px с каждой стороны (было 70 px по
  горизонтали и 90 px по вертикали). Снят и потолок кегля в 160 pt, из-за
  которого короткий текст оставлял вокруг себя пустоту в сотни пикселей:
  теперь размер шрифта подбирается дробно и текст занимает кадр целиком.
  Остаток высоты (когда шрифт упёрся в ширину строки) раздаётся
  межстрочным интервалом, а не превращается в пустые поля. Боковые поля
  у коротких строк остаются больше 8 px — строка просто короче кадра,
  растягивать буквы приложение не станет.
- Переработано распознавание припева и бриджа. Исправлено:
  * метки теперь разбираются, а не сверяются с жёстким шаблоном:
    понимаются [Chorus], (ПРИПЕВ 2), «Припев:», «Chorus x2»,
    «Припев (2 раза)», «Рефрен», а также «Припев: первая строка», когда
    текст стоит в той же строке, что и метка;
  * файлы без пустых строк раньше целиком считались одной строфой, и
    припев в них не находился никогда. Теперь метка сама делит текст на
    строфы, а если меток нет — приложение ищет повторяющиеся блоки строк
    и режет песню по ним;
  * одинокая строка «Припев» между куплетами теперь понимается как
    «здесь поётся припев» и даёт +CHORUS. Раньше она помечала припевом
    следующий за ней куплет;
  * повторы ищутся по всей песне, а не только ниже метки: непомеченный
    припев, стоящий выше помеченного, тоже опознаётся;
  * допуск на «тот же припев, спетый чуть иначе» теперь зависит от длины
    строфы, а не равен 15 знакам всегда. Короткие строфы больше не
    слипаются, у длинных одна изменённая строка не ломает распознавание;
  * «Проигрыш», «Соло», «Интро», «Кода» и нумерация куплетов («1.», «2)»)
    убираются из текста и просто делят строфы.

Версия 1.1.2 (пакетное форматирование)
---------------------------------------
Правила распознавания припева/бриджа в «Пакетном форматировании» переработаны
(подробности — в разделе «Меню «Пакетное форматирование»» ниже):
- метка [Chorus]/[Bridge] (регистр не важен) отмечает первое появление;
  все последующие повторы этого текста находятся по всей песне — даже
  непомеченные — и сворачиваются в +CHORUS/+BRIDGE в конце предыдущей
  строки, а не на отдельной строке;
- повтор с небольшими отличиями (до 15 знаков на абзац) сворачивается в
  +VAR CHORUS/+VAR BRIDGE вместо +CHORUS/+BRIDGE;
- если помечен только припев или только бридж, недостающая метка
  находится автоматически по повторам текста; если не помечено ни то,
  ни другое, все найденные повторы считаются припевом;
- если меток нет и повторов не найдено, абзацы красятся по очереди —
  белый, голубой, светло-зелёный — для удобства чтения.

Версия 1.1.1 (исправление)
---------------------------
Устранена периодическая аварийная остановка приложения при выборе песни/файла
(поиск в системном диалоге), особенно при переключении раскладки клавиатуры
(алфавита) во время набора текста в диалоге на macOS Tahoe. Причина —
глобальный монитор клавиш, следивший за нажатиями по всей системе, оставался
активным поверх модального системного диалога выбора файла. Теперь на время
показа диалога («Выбрать песню», выбор целевого приложения, выбор файлов/папки
в «Пакетном форматировании») глобальный монитор приостанавливается и включается
заново сразу после закрытия диалога. Обычные назначенные клавиши (в том числе
⌘Q) продолжают работать как раньше.

Установка
---------
1. Полностью распакуйте ZIP-архив.
2. Дважды нажмите Install.command.
3. Если macOS блокирует запуск, нажмите правой кнопкой по Install.command,
   выберите «Открыть» и подтвердите запуск.

Приложение устанавливается в ~/Applications/PressNext Live.app. Xcode и Command Line
Tools не нужны. PressNext Live имеет собственное имя и идентификатор, поэтому может
быть установлен рядом с SongLyr и SongLL. Однако не запускайте эти плееры
одновременно: они управляют одними и теми же системными приложениями.

PressNext Live — это отдельный форк оригинального PressNext (свой путь установки,
свой идентификатор пакета, свои настройки). Если на компьютере уже установлен
PressNext, он никак не затрагивается: оба приложения можно держать рядом, у них
разные хранилища настроек. Как и с SongLyr/SongLL, не запускайте PressNext и
PressNext Live одновременно, если они управляют одной и той же DAW/окном.

Первый запуск и разрешения
-------------------------
Разрешите PressNext Live:
- «Универсальный доступ» — для глобальных клавиш и расположения окон;
- управление QuickTime Player;
- управление Preview («Просмотр»), TextEdit и System Events;
- управление выбранной DAW, если macOS запросит это разрешение.

После включения «Универсального доступа» полностью закройте и снова запустите
PressNext Live.

Поддерживаемые файлы
--------------------
Аудио: MP3, WAV.
Текст/изображение: PNG, JPG, JPEG, PDF, DOCX, TXT.

Файл текста должен лежать рядом с аудио и иметь то же имя до расширения:

  01 - Song.wav
  01 - Song.pdf

Изображения и PDF открываются в Preview, DOCX и TXT — в TextEdit. Окно текста
занимает выбранную половину экрана (меню «Текст»), окно QuickTime Player —
противоположную половину: по ширине во всю зону, по высоте наполовину уходит
за нижний край экрана (видна верхняя половина — заголовок и бегунок с
таймингом). Это происходит автоматически, без отдельных настроек. Файл текста
необязателен: если его нет, песня всё равно воспроизводится. Если рядом несколько
одноимённых файлов, используется первый по приоритету:
PNG -> JPG -> JPEG -> PDF -> DOCX -> TXT.

Стандартное управление
----------------------
←       назад на 10 секунд
→       вперёд на 10 секунд
↑       предыдущая песня
↓       следующая песня
Esc     остановить песню и закрыть её окна
Space   пауза / продолжить с того же места
⌘O      закрыть текущую песню и открыть выбор файла
⌘Q      закрыть свои окна и завершить PressNext Live

Быстрые повторные нажатия ←/→ объединяются в одну безопасную команду. Например,
три быстрых нажатия → перематывают на 30 секунд.

Меню «Приложение»
-----------------
Пункт «Активировать после старта» включает или отключает совместную работу с DAW.
Выберите Logic Pro, MainStage, Gig Performer или REAPER. Через пункт «Выбрать
другое приложение…» можно указать любой файл .app, в том числе приложение с
изменённым названием. Настройки запоминаются.

После открытия песни PressNext Live начинает проверяемую активацию выбранной программы
почти сразу: первая попытка через 50 мс, затем короткие повторные попытки, если
macOS ещё не успела переключить фокус. Это не останавливает воспроизведение.

Меню «Текст»
------------
«Слева» и «Справа» занимают соответствующую половину основного экрана. «Второй
монитор» разворачивает окно текста на доступную область второго дисплея. Если
второго монитора нет, используется левая половина основного экрана.

Меню «Клавиши»
--------------
Каждое действие можно переназначить. Доступны стрелки, Esc, Space, Return, Tab,
Home/End, Page Up/Page Down, F1–F12, буквы и варианты с Command. Одна клавиша не
может быть назначена двум действиям. Пункт «Вернуть стандартные клавиши» сбрасывает
весь набор.

Назначенные клавиши работают, когда активно окно PressNext Live, QuickTime Player,
Preview, TextEdit или выбранной DAW. Глобальный монитор PressNext Live не может запретить
DAW одновременно получить ту же клавишу. Если Space или стрелки выполняют в DAW
нежелательное действие, удалите это назначение в настройках горячих клавиш DAW
либо выберите в PressNext Live другую клавишу.

Меню «Пакетное форматирование»
------------------------------
Превращает текстовые файлы с текстами песен (TXT, DOCX, RTF) в готовые
картинки для показа на экране — по одной картинке 1400x1960 px (половина
экрана) на файл, с текстом, подобранным под максимальный читаемый размер.
Поля картинки — 8 px с каждой стороны, текст занимает практически весь
кадр.
Результат сохраняется под тем же именем, что и исходный файл, поэтому его
можно сразу положить рядом с аудио — PressNext Live подхватит его как обычный
сопроводительный файл песни (см. «Поддерживаемые файлы» выше).

Пункты меню:
  Выбрать файлы…             — выбрать один или несколько файлов с текстами
  Выбрать шрифт…              — открывает системную панель шрифтов
  Папка для сохранения…       — куда сохранять готовые картинки
  Формат сохранения           — PNG, JPG или PDF
  Цвет куплета… / Цвет припева… / Цвет бриджа… — открывают системную
                                 палитру цветов
  Начать форматирование       — запускает обработку всех выбранных файлов

Форматирование:
  - Текст по умолчанию рисуется белым, ЗАГЛАВНЫМИ буквами. Шрифтом по
    умолчанию является Bebas Neue, если он установлен в системе; если нет —
    используется ближайший узкий/жирный системный шрифт. Свой шрифт можно
    выбрать через «Выбрать шрифт…».
  - Припев показывается полностью только при первом появлении, дальше —
    надписью +CHORUS (или +CHORUS*3, если он повторяется несколько раз
    подряд дословно); то же для бриджа (+BRIDGE). Повтор с небольшими
    отличиями от первого появления (допуск зависит от длины строфы:
    ориентировочно 15 знаков, но не более 20% её длины, без учёта
    регистра и знаков препинания) даёт +VAR CHORUS/+VAR BRIDGE
    вместо +CHORUS/+BRIDGE — это сигнал, что слова немного другие и стоит
    туда заглянуть. Разные по тексту припевы/бриджи (например, второй
    вариант припева) отслеживаются отдельно друг от друга. Надпись всегда
    добавляется в конец предыдущей строки, а не на новую строку — если она
    туда не помещается, переносится на свою строку.
  - Несколько подряд идущих коротких строк объединяются в одну через
    тройной пробел; подряд идущие одинаковые слова сворачиваются в вид
    СЛОВО*4; долгий распев на 2+ строк (о-о-о-о, а-ах-а и т.п.) заменяется
    словом VOCALISE.
  - Готовое изображение сжимается до ~200-300 КБ (для PNG размер обычно и
    так укладывается в бюджет за счёт плоских цветов, для JPG/PDF качество
    подбирается автоматически).

Распознавание строф: если в текстовом файле есть метки [Chorus] и/или
[Bridge] (или Припев/Рефрен/Бридж — в скобках, с двоеточием или без,
с номером, с «x2» или «(2 раза)», регистр не важен) — используются они,
и это самый надёжный вариант. Метка может стоять на отдельной строке или
перед текстом в той же строке («Припев: свет мой»). Полным текстом
показывается самое раннее появление раздела; все остальные повторы этого
же текста находятся по всей песне автоматически — и ниже, и выше метки,
даже если сами не помечены. Одинокая строка «Припев» между куплетами
понимается как указание повторить припев и даёт +CHORUS (с «(2 раза)» —
+CHORUS*2). [Verse]/Куплет — тоже опознаётся, но только чтобы не путать
его с припевом или бриджем; сам по себе он ни на что не влияет.
«Интро», «Проигрыш», «Соло», «Кода» и нумерация куплетов («1.», «2)»)
убираются из текста и служат только разделителями строф.

Пустые строки между строфами желательны, но не обязательны: метки делят
текст сами, а если меток нет вовсе — приложение ищет повторяющиеся блоки
строк и режет песню по ним.

Если помечен только припев или только бридж, недостающая часть находится
эвристикой: PressNext Live ищет повторяющиеся блоки текста среди
непомеченных абзацев и считает их пропущенной меткой. Если не помечено ни
то, ни другое, PressNext Live точно так же ищет повторы во всём файле, но
все найденные повторяющиеся блоки считаются припевом (без деления на
припев и бридж). Это эвристика и может ошибиться на нестандартной
структуре песни — в таком случае проще добавить метки в файл.

Если меток нет вовсе и повторяющихся блоков не нашлось (песня без
явного припева/бриджа), PressNext Live для удобства чтения красит абзацы
по очереди: белый, голубой, светло-зелёный — вместо одного сплошного
цвета для всех куплетов.

Закрытие и безопасность
-----------------------
При переключении песни PressNext Live сначала закрывает и проверяет старые документы,
а только затем открывает новые. Документы отслеживаются по ID и полному пути, что
защищает от проблем со специальными символами в имени. После естественного
окончания песни PressNext Live закрывает открытые им документы и завершает QuickTime/
Preview/TextEdit только тогда, когда в соответствующем приложении не осталось
других документов. Затем снова активируется PressNext Live.
